package com.the_last.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.the_last.pojo.dto.VenueDto;
import com.the_last.pojo.po.Venue;
import com.the_last.pojo.vo.PageVO;
import com.the_last.pojo.vo.TimeSlotVO;
import com.the_last.pojo.vo.VenueTreeVO;
import com.the_last.pojo.vo.VenueVO;
import com.the_last.utils.Result;

import java.util.List;

/**
 * @author zhanghaifeng
 * @description 针对表【Venue】的数据库操作Service
 * @createDate 2025-06-03 17:44:24
 */
public interface VenueService extends IService<Venue> {
    
    /**
     * 根据运动类型id获取场地列表
     *
     * @param sportTypeId 运动类型id
     * @return 场地列表
     */
    Result<PageVO<VenueVO>> getVenuesBySportTypeId(Integer sportTypeId, Integer status, Integer pageNum, Integer pageSize);
    
    /**
     * 根据场地id获取时间表
     *
     * @param venueId 场地id
     * @param date    日期
     * @return 时间段列表
     */
    Result<List<TimeSlotVO>> getTimeslotsByVenueId(Integer venueId, String date);
    
    /**
     * 更新场馆信息
     *
     * @param venueDto 场馆信息
     * @return 更新结果
     */
    Result<String> updateVenue(VenueDto venueDto);
    
    /**
     * 新增场馆
     *
     * @param venueDto 场馆信息
     * @return 新增结果
     */
    Result addVenue(VenueDto venueDto);
    
    /**
     * 删除场馆
     *
     * @param id 场馆ID
     * @return 删除结果
     */
    Result deleteVenue(Integer id);
    
    /**
     * 获取场馆树形结构
     *
     * @return 场馆树形结构数据
     */
    Result<List<VenueTreeVO>> getVenueTree();
}
